import { replaceHtml } from "../utils/util";
import { modelHTML } from "./constant";
import menuButton from "./menuButton";
import editor from "../global/editor";
import tooltip from "../global/tooltip";
import { isEditMode } from "../global/validate";
import Store from "../store";
import locale from "../locale/locale";

//更多格式
const luckysheetMoreFormat = {
  moneyFmtList: [
    {
      name: "人民币",
      pos: "before",
      value: "¥",
    },
    {
      name: "美元",
      pos: "before",
      value: "$",
    },
    {
      name: "欧元",
      pos: "before",
      value: "€",
    },
    {
      name: "英镑",
      pos: "before",
      value: "￡",
    },
    {
      name: "港元",
      pos: "before",
      value: "$",
    },
    {
      name: "日元",
      pos: "before",
      value: "￥",
    },
    {
      name: "阿尔巴尼亚列克",
      pos: "before",
      value: "Lek",
    },
    {
      name: "阿尔及利亚第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "阿富汗尼",
      pos: "after",
      value: "Af",
    },
    {
      name: "阿根廷比索",
      pos: "before",
      value: "$",
    },
    {
      name: "阿拉伯联合酋长国迪拉姆",
      pos: "before",
      value: "dh",
    },
    {
      name: "阿鲁巴弗罗林",
      pos: "before",
      value: "Afl",
    },
    {
      name: "阿曼里亚尔",
      pos: "before",
      value: "Rial",
    },
    {
      name: "阿塞拜疆马纳特",
      pos: "before",
      value: "?",
    },
    {
      name: "埃及镑",
      pos: "before",
      value: "￡",
    },
    {
      name: "埃塞俄比亚比尔",
      pos: "before",
      value: "Birr",
    },
    {
      name: "安哥拉宽扎",
      pos: "before",
      value: "Kz",
    },
    {
      name: "澳大利亚元",
      pos: "before",
      value: "$",
    },
    {
      name: "澳门元",
      pos: "before",
      value: "MOP",
    },
    {
      name: "巴巴多斯元",
      pos: "before",
      value: "$",
    },
    {
      name: "巴布亚新几内亚基那",
      pos: "before",
      value: "PGK",
    },
    {
      name: "巴哈马元",
      pos: "before",
      value: "$",
    },
    {
      name: "巴基斯坦卢比",
      pos: "before",
      value: "Rs",
    },
    {
      name: "巴拉圭瓜拉尼",
      pos: "after",
      value: "Gs",
    },
    {
      name: "巴林第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "巴拿马巴波亚",
      pos: "before",
      value: "B/",
    },
    {
      name: "巴西里亚伊",
      pos: "before",
      value: "R$",
    },
    {
      name: "白俄罗斯卢布",
      pos: "after",
      value: "р",
    },
    {
      name: "百慕大元",
      pos: "before",
      value: "$",
    },
    {
      name: "保加利亚列弗",
      pos: "before",
      value: "lev",
    },
    {
      name: "冰岛克朗",
      pos: "before",
      value: "kr",
    },
    {
      name: "波黑可兑换马克",
      pos: "before",
      value: "KM",
    },
    {
      name: "波兰兹罗提",
      pos: "after",
      value: "z?",
    },
    {
      name: "玻利维亚诺",
      pos: "before",
      value: "Bs",
    },
    {
      name: "伯利兹元",
      pos: "before",
      value: "$",
    },
    {
      name: "博茨瓦纳普拉",
      pos: "before",
      value: "P",
    },
    {
      name: "不丹努扎姆",
      pos: "before",
      value: "Nu",
    },
    {
      name: "布隆迪法郎",
      pos: "before",
      value: "FBu",
    },
    {
      name: "朝鲜圆",
      pos: "before",
      value: "?KP",
    },
    {
      name: "丹麦克朗",
      pos: "after",
      value: "kr",
    },
    {
      name: "东加勒比元",
      pos: "before",
      value: "$",
    },
    {
      name: "多米尼加比索",
      pos: "before",
      value: "RD$",
    },
    {
      name: "俄国卢布",
      pos: "after",
      value: "?",
    },
    {
      name: "厄立特里亚纳克法",
      pos: "before",
      value: "Nfk",
    },
    {
      name: "非洲金融共同体法郎",
      pos: "before",
      value: "CFA",
    },
    {
      name: "菲律宾比索",
      pos: "before",
      value: "?",
    },
    {
      name: "斐济元",
      pos: "before",
      value: "$",
    },
    {
      name: "佛得角埃斯库多",
      pos: "before",
      value: "CVE",
    },
    {
      name: "福克兰群岛镑",
      pos: "before",
      value: "￡",
    },
    {
      name: "冈比亚达拉西",
      pos: "before",
      value: "GMD",
    },
    {
      name: "刚果法郎",
      pos: "before",
      value: "FrCD",
    },
    {
      name: "哥伦比亚比索",
      pos: "before",
      value: "$",
    },
    {
      name: "哥斯达黎加科朗",
      pos: "before",
      value: "?",
    },
    {
      name: "古巴比索",
      pos: "before",
      value: "$",
    },
    {
      name: "古巴可兑换比索",
      pos: "before",
      value: "$",
    },
    {
      name: "圭亚那元",
      pos: "before",
      value: "$",
    },
    {
      name: "哈萨克斯坦坚戈",
      pos: "before",
      value: "?",
    },
    {
      name: "海地古德",
      pos: "before",
      value: "HTG",
    },
    {
      name: "韩元",
      pos: "before",
      value: "?",
    },
    {
      name: "荷属安的列斯盾",
      pos: "before",
      value: "NAf.",
    },
    {
      name: "洪都拉斯拉伦皮拉",
      pos: "before",
      value: "L",
    },
    {
      name: "吉布提法郎",
      pos: "before",
      value: "Fdj",
    },
    {
      name: "吉尔吉斯斯坦索姆",
      pos: "before",
      value: "KGS",
    },
    {
      name: "几内亚法郎",
      pos: "before",
      value: "FG",
    },
    {
      name: "加拿大元",
      pos: "before",
      value: "$",
    },
    {
      name: "加纳塞地",
      pos: "before",
      value: "GHS",
    },
    {
      name: "柬埔寨瑞尔",
      pos: "before",
      value: "Riel",
    },
    {
      name: "捷克克朗",
      pos: "after",
      value: "K?",
    },
    {
      name: "津巴布韦元",
      pos: "before",
      value: "$",
    },
    {
      name: "卡塔尔里亚尔",
      pos: "before",
      value: "Rial",
    },
    {
      name: "开曼群岛元",
      pos: "before",
      value: "$",
    },
    {
      name: "科摩罗法郎",
      pos: "before",
      value: "CF",
    },
    {
      name: "科威特第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "克罗地亚库纳",
      pos: "before",
      value: "kn",
    },
    {
      name: "肯尼亚先令",
      pos: "before",
      value: "Ksh",
    },
    {
      name: "莱索托洛蒂",
      pos: "before",
      value: "LSL",
    },
    {
      name: "老挝基普",
      pos: "before",
      value: "?",
    },
    {
      name: "黎巴嫩镑",
      pos: "before",
      value: "L￡",
    },
    {
      name: "立陶宛立特",
      pos: "before",
      value: "Lt",
    },
    {
      name: "利比亚第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "利比亚元",
      pos: "before",
      value: "$",
    },
    {
      name: "卢旺达法郎",
      pos: "before",
      value: "RF",
    },
    {
      name: "罗马尼亚列伊",
      pos: "before",
      value: "RON",
    },
    {
      name: "马达加斯加阿里亚里",
      pos: "before",
      value: "Ar",
    },
    {
      name: "马尔代夫拉菲亚",
      pos: "before",
      value: "Rf",
    },
    {
      name: "马拉维克瓦查",
      pos: "before",
      value: "MWK",
    },
    {
      name: "马来西亚林吉特",
      pos: "before",
      value: "RM",
    },
    {
      name: "马其顿戴第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "毛里求斯卢比",
      pos: "before",
      value: "MURs",
    },
    {
      name: "毛里塔尼亚乌吉亚",
      pos: "before",
      value: "MRO",
    },
    {
      name: "蒙古图格里克",
      pos: "before",
      value: "?",
    },
    {
      name: "孟加拉塔卡",
      pos: "before",
      value: "?",
    },
    {
      name: "秘鲁新索尔",
      pos: "before",
      value: "S/",
    },
    {
      name: "缅甸开亚特",
      pos: "before",
      value: "K",
    },
    {
      name: "摩尔多瓦列伊",
      pos: "before",
      value: "MDL",
    },
    {
      name: "摩洛哥迪拉姆",
      pos: "before",
      value: "dh",
    },
    {
      name: "莫桑比克梅蒂卡尔",
      pos: "before",
      value: "MTn",
    },
    {
      name: "墨西哥比索",
      pos: "before",
      value: "$",
    },
    {
      name: "纳米比亚元",
      pos: "before",
      value: "$",
    },
    {
      name: "南非兰特",
      pos: "before",
      value: "R",
    },
    {
      name: "南苏丹镑",
      pos: "before",
      value: "￡",
    },
    {
      name: "尼加拉瓜科多巴",
      pos: "before",
      value: "C$",
    },
    {
      name: "尼泊尔卢比",
      pos: "before",
      value: "Rs",
    },
    {
      name: "尼日利亚奈拉",
      pos: "before",
      value: "?",
    },
    {
      name: "挪威克朗",
      pos: "after",
      value: "kr",
    },
    {
      name: "乔治亚拉瑞",
      pos: "before",
      value: "GEL",
    },
    {
      name: "人民币（离岸）",
      pos: "before",
      value: "￥",
    },
    {
      name: "瑞典克朗",
      pos: "after",
      value: "kr",
    },
    {
      name: "瑞士法郎",
      pos: "before",
      value: "CHF",
    },
    {
      name: "塞尔维亚第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "塞拉利昂利昂",
      pos: "before",
      value: "SLL",
    },
    {
      name: "塞舌尔卢比",
      pos: "before",
      value: "SCR",
    },
    {
      name: "沙特里亚尔",
      pos: "before",
      value: "Rial",
    },
    {
      name: "圣多美多布拉",
      pos: "before",
      value: "Db",
    },
    {
      name: "圣赫勒拿群岛磅",
      pos: "before",
      value: "￡",
    },
    {
      name: "斯里兰卡卢比",
      pos: "before",
      value: "Rs",
    },
    {
      name: "斯威士兰里兰吉尼",
      pos: "before",
      value: "SZL",
    },
    {
      name: "苏丹镑",
      pos: "before",
      value: "SDG",
    },
    {
      name: "苏里南元",
      pos: "before",
      value: "$",
    },
    {
      name: "所罗门群岛元",
      pos: "before",
      value: "$",
    },
    {
      name: "索马里先令",
      pos: "before",
      value: "SOS",
    },
    {
      name: "塔吉克斯坦索莫尼",
      pos: "before",
      value: "Som",
    },
    {
      name: "太平洋法郎",
      pos: "after",
      value: "FCFP",
    },
    {
      name: "泰国铢",
      pos: "before",
      value: "?",
    },
    {
      name: "坦桑尼亚先令",
      pos: "before",
      value: "TSh",
    },
    {
      name: "汤加潘加",
      pos: "before",
      value: "T$",
    },
    {
      name: "特立尼达和多巴哥元",
      pos: "before",
      value: "$",
    },
    {
      name: "突尼斯第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "土耳其里拉",
      pos: "before",
      value: "?",
    },
    {
      name: "瓦努阿图瓦图",
      pos: "before",
      value: "VUV",
    },
    {
      name: "危地马拉格查尔",
      pos: "before",
      value: "Q",
    },
    {
      name: "委内瑞拉博利瓦",
      pos: "before",
      value: "Bs",
    },
    {
      name: "文莱元",
      pos: "before",
      value: "$",
    },
    {
      name: "乌干达先令",
      pos: "before",
      value: "UGX",
    },
    {
      name: "乌克兰格里夫尼亚",
      pos: "before",
      value: "грн.",
    },
    {
      name: "乌拉圭比索",
      pos: "before",
      value: "$",
    },
    {
      name: "乌兹别克斯坦苏姆",
      pos: "before",
      value: "so?m",
    },
    {
      name: "西萨摩亚塔拉",
      pos: "before",
      value: "WST",
    },
    {
      name: "新加坡元",
      pos: "before",
      value: "$",
    },
    {
      name: "新台币",
      pos: "before",
      value: "NT$",
    },
    {
      name: "新西兰元",
      pos: "before",
      value: "$",
    },
    {
      name: "匈牙利福林",
      pos: "before",
      value: "Ft",
    },
    {
      name: "叙利亚镑",
      pos: "before",
      value: "￡",
    },
    {
      name: "牙买加元",
      pos: "before",
      value: "$",
    },
    {
      name: "亚美尼亚德拉姆",
      pos: "before",
      value: "Dram",
    },
    {
      name: "也门里亚尔",
      pos: "before",
      value: "Rial",
    },
    {
      name: "伊拉克第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "伊朗里亚尔",
      pos: "before",
      value: "Rial",
    },
    {
      name: "以色列新谢克尔",
      pos: "before",
      value: "?",
    },
    {
      name: "印度卢比",
      pos: "before",
      value: "?",
    },
    {
      name: "印度尼西亚卢比",
      pos: "before",
      value: "Rp",
    },
    {
      name: "约旦第纳尔",
      pos: "before",
      value: "din",
    },
    {
      name: "越南盾",
      pos: "after",
      value: "?",
    },
    {
      name: "赞比亚克瓦查",
      pos: "before",
      value: "ZMW",
    },
    {
      name: "直布罗陀镑",
      pos: "before",
      value: "￡",
    },
    {
      name: "智利比索",
      pos: "before",
      value: "$",
    },
    {
      name: "中非金融合作法郎",
      pos: "before",
      value: "FCFA",
    },
  ],
  dateFmtList: [
    {
      name: "1930-08-05",
      value: "yyyy-MM-dd",
    },
    {
      name: "1930/8/5",
      value: "yyyy/MM/dd",
    },
    {
      name: "1930年8月5日",
      value: 'yyyy"年"M"月"d"日"',
    },
    {
      name: "08-05",
      value: "MM-dd",
    },
    {
      name: "8-5",
      value: "M-d",
    },
    {
      name: "8月5日",
      value: 'M"月"d"日"',
    },
    {
      name: "13:30:30",
      value: "h:mm:ss",
    },
    {
      name: "13:30",
      value: "h:mm",
    },
    {
      name: "下午01:30",
      value: "上午/下午 hh:mm",
    },
    {
      name: "下午1:30",
      value: "上午/下午 h:mm",
    },
    {
      name: "下午1:30:30",
      value: "上午/下午 h:mm:ss",
    },
    {
      name: "08-05 下午01:30",
      value: "MM-dd 上午/下午 hh:mm",
    },
    // {
    //     "name": "1930年8月5日星期二",
    //     "value": ''
    // },
    // {
    //     "name": "1930年8月5日星期二 下午1:30:30",
    //     "value": ''
    // },
  ],
  numFmtList: [
    {
      name: "1235",
      value: "0",
    },
    {
      name: "1234.56",
      value: "0.00",
    },
    {
      name: "1,235",
      value: "#,##0",
    },
    {
      name: "1,234.56",
      value: "#,##0.00",
    },
    {
      name: "1,235",
      value: "#,##0_);(#,##0)",
    },
    {
      name: "1,235",
      value: "#,##0_);[Red](#,##0)",
    },
    {
      name: "1,234.56",
      value: "#,##0.00_);(#,##0.00)",
    },
    {
      name: "1,234.56",
      value: "#,##0.00_);[Red](#,##0.00)",
    },
    {
      name: "$1,235",
      value: "$#,##0_);($#,##0)",
    },
    {
      name: "$1,235",
      value: "$#,##0_);[Red]($#,##0)",
    },
    {
      name: "$1,234.56",
      value: "$#,##0.00_);($#,##0.00)",
    },
    {
      name: "$1,234.56",
      value: "$#,##0.00_);[Red]($#,##0.00)",
    },
    {
      name: "1234.56",
      value: "@",
    },
    {
      name: "123456%",
      value: "0%",
    },
    {
      name: "123456.00%",
      value: "0.00%",
    },
    {
      name: "1.23E+03",
      value: "0.00E+00",
    },
    {
      name: "1.2E+3",
      value: "##0.0E+0",
    },
    {
      name: "1234 5/9",
      value: "# ?/?",
    },
    {
      name: "1234 14/25",
      value: "# ??/??",
    },
    {
      name: "$ 1,235",
      value: '_($* #,##0_);_(...($* "-"_);_(@_)',
    },
    {
      name: "1,235",
      value: '_(* #,##0_);_(*..._(* "-"_);_(@_)',
    },
    {
      name: "$ 1,234.56",
      // "value": '_($* #,##0.00_)...* "-"??_);_(@_)'
      value: '_($* #,##0.00_);_(...($* "-"_);_(@_)',
    },
    {
      name: "1,234.56",
      value: '_(* #,##0.00_);...* "-"??_);_(@_)',
    },
  ],
  createDialog: function(type) {
    let _this = this;

    const currencyDetail = locale().currencyDetail;
    const locale_format = locale().format;
    const locale_button = locale().button;

    this.moneyFmtList = [
      { name: currencyDetail.RMB, pos: "before", value: "¥" },
      { name: currencyDetail.USdollar, pos: "before", value: "$" },
      { name: currencyDetail.EUR, pos: "before", value: "€" },
      { name: currencyDetail.GBP, pos: "before", value: "￡" },
      { name: currencyDetail.HK, pos: "before", value: "$" },
      { name: currencyDetail.JPY, pos: "before", value: "￥" },
      { name: currencyDetail.AlbanianLek, pos: "before", value: "Lek" },
      { name: currencyDetail.AlgerianDinar, pos: "before", value: "din" },
      { name: currencyDetail.Afghani, pos: "after", value: "Af" },
      { name: currencyDetail.ArgentinePeso, pos: "before", value: "$" },
      {
        name: currencyDetail.UnitedArabEmiratesDirham,
        pos: "before",
        value: "dh",
      },
      { name: currencyDetail.ArubanFlorin, pos: "before", value: "Afl" },
      { name: currencyDetail.OmaniRial, pos: "before", value: "Rial" },
      { name: currencyDetail.Azerbaijanimanat, pos: "before", value: "?" },
      { name: currencyDetail.EgyptianPound, pos: "before", value: "￡" },
      { name: currencyDetail.EthiopianBirr, pos: "before", value: "Birr" },
      { name: currencyDetail.AngolaKwanza, pos: "before", value: "Kz" },
      { name: currencyDetail.AustralianDollar, pos: "before", value: "$" },
      { name: currencyDetail.Patacas, pos: "before", value: "MOP" },
      { name: currencyDetail.BarbadosDollar, pos: "before", value: "$" },
      { name: currencyDetail.PapuaNewGuineaKina, pos: "before", value: "PGK" },
      { name: currencyDetail.BahamianDollar, pos: "before", value: "$" },
      { name: currencyDetail.PakistanRupee, pos: "before", value: "Rs" },
      { name: currencyDetail.ParaguayanGuarani, pos: "after", value: "Gs" },
      { name: currencyDetail.BahrainiDinar, pos: "before", value: "din" },
      { name: currencyDetail.PanamanianBalboa, pos: "before", value: "B/" },
      { name: currencyDetail.Brazilianreal, pos: "before", value: "R$" },
      { name: currencyDetail.Belarusianruble, pos: "after", value: "р" },
      { name: currencyDetail.BermudianDollar, pos: "before", value: "$" },
      { name: currencyDetail.BulgarianLev, pos: "before", value: "lev" },
      { name: currencyDetail.IcelandKrona, pos: "before", value: "kr" },
      {
        name: currencyDetail.BosniaHerzegovinaConvertibleMark,
        pos: "before",
        value: "KM",
      },
      { name: currencyDetail.PolishZloty, pos: "after", value: "z?" },
      { name: currencyDetail.Boliviano, pos: "before", value: "Bs" },
      { name: currencyDetail.BelizeDollar, pos: "before", value: "$" },
      { name: currencyDetail.BotswanaPula, pos: "before", value: "P" },
      { name: currencyDetail.NotDannuzhamu, pos: "before", value: "Nu" },
      { name: currencyDetail.BurundiFranc, pos: "before", value: "FBu" },
      { name: currencyDetail.NorthKoreanWon, pos: "before", value: "?KP" },
      { name: currencyDetail.DanishKrone, pos: "after", value: "kr" },
      { name: currencyDetail.EastCaribbeanDollar, pos: "before", value: "$" },
      { name: currencyDetail.DominicaPeso, pos: "before", value: "RD$" },
      { name: currencyDetail.RussianRuble, pos: "after", value: "?" },
      { name: currencyDetail.EritreanNakfa, pos: "before", value: "Nfk" },
      { name: currencyDetail.CFAfranc, pos: "before", value: "CFA" },
      { name: currencyDetail.PhilippinePeso, pos: "before", value: "?" },
      { name: currencyDetail.FijiDollar, pos: "before", value: "$" },
      { name: currencyDetail.CapeVerdeEscudo, pos: "before", value: "CVE" },
      { name: currencyDetail.FalklandIslandsPound, pos: "before", value: "￡" },
      { name: currencyDetail.GambianDalasi, pos: "before", value: "GMD" },
      { name: currencyDetail.Congolesefranc, pos: "before", value: "FrCD" },
      { name: currencyDetail.ColombianPeso, pos: "before", value: "$" },
      { name: currencyDetail.CostaRicanColon, pos: "before", value: "?" },
      { name: currencyDetail.CubanPeso, pos: "before", value: "$" },
      { name: currencyDetail.Cubanconvertiblepeso, pos: "before", value: "$" },
      { name: currencyDetail.GuyanaDollar, pos: "before", value: "$" },
      { name: currencyDetail.KazakhstanTenge, pos: "before", value: "?" },
      { name: currencyDetail.Haitiangourde, pos: "before", value: "HTG" },
      { name: currencyDetail.won, pos: "before", value: "?" },
      {
        name: currencyDetail.NetherlandsAntillesGuilder,
        pos: "before",
        value: "NAf.",
      },
      { name: currencyDetail.Honduraslempiras, pos: "before", value: "L" },
      { name: currencyDetail.DjiboutiFranc, pos: "before", value: "Fdj" },
      { name: currencyDetail.KyrgyzstanSom, pos: "before", value: "KGS" },
      { name: currencyDetail.GuineaFranc, pos: "before", value: "FG" },
      { name: currencyDetail.CanadianDollar, pos: "before", value: "$" },
      { name: currencyDetail.GhanaianCedi, pos: "before", value: "GHS" },
      { name: currencyDetail.Cambodianriel, pos: "before", value: "Riel" },
      { name: currencyDetail.CzechKoruna, pos: "after", value: "K?" },
      { name: currencyDetail.ZimbabweDollar, pos: "before", value: "$" },
      { name: currencyDetail.QatariRiyal, pos: "before", value: "Rial" },
      { name: currencyDetail.CaymanIslandsDollar, pos: "before", value: "$" },
      { name: currencyDetail.Comorianfranc, pos: "before", value: "CF" },
      { name: currencyDetail.KuwaitiDinar, pos: "before", value: "din" },
      { name: currencyDetail.CroatianKuna, pos: "before", value: "kn" },
      { name: currencyDetail.KenyanShilling, pos: "before", value: "Ksh" },
      { name: currencyDetail.LesothoLoti, pos: "before", value: "LSL" },
      { name: currencyDetail.LaoKip, pos: "before", value: "?" },
      { name: currencyDetail.LebanesePound, pos: "before", value: "L￡" },
      { name: currencyDetail.Lithuanianlitas, pos: "before", value: "Lt" },
      { name: currencyDetail.LibyanDinar, pos: "before", value: "din" },
      { name: currencyDetail.LiberianDollar, pos: "before", value: "$" },
      { name: currencyDetail.RwandaFranc, pos: "before", value: "RF" },
      { name: currencyDetail.RomanianLeu, pos: "before", value: "RON" },
      { name: currencyDetail.MalagasyAriary, pos: "before", value: "Ar" },
      { name: currencyDetail.MaldivianRufiyaa, pos: "before", value: "Rf" },
      { name: currencyDetail.MalawiKwacha, pos: "before", value: "MWK" },
      { name: currencyDetail.MalaysianRinggit, pos: "before", value: "RM" },
      {
        name: currencyDetail.MacedoniawearingDinar,
        pos: "before",
        value: "din",
      },
      { name: currencyDetail.MauritiusRupee, pos: "before", value: "MURs" },
      { name: currencyDetail.MauritanianOuguiya, pos: "before", value: "MRO" },
      { name: currencyDetail.MongolianTugrik, pos: "before", value: "?" },
      { name: currencyDetail.BangladeshiTaka, pos: "before", value: "?" },
      { name: currencyDetail.PeruvianNuevoSol, pos: "before", value: "S/" },
      { name: currencyDetail.MyanmarKyat, pos: "before", value: "K" },
      { name: currencyDetail.MoldovanLeu, pos: "before", value: "MDL" },
      { name: currencyDetail.MoroccanDirham, pos: "before", value: "dh" },
      { name: currencyDetail.MozambiqueMetical, pos: "before", value: "MTn" },
      { name: currencyDetail.MexicanPeso, pos: "before", value: "$" },
      { name: currencyDetail.NamibianDollar, pos: "before", value: "$" },
      { name: currencyDetail.SouthAfricanRand, pos: "before", value: "R" },
      { name: currencyDetail.SouthSudanesePound, pos: "before", value: "￡" },
      { name: currencyDetail.NicaraguaCordoba, pos: "before", value: "C$" },
      { name: currencyDetail.NepaleseRupee, pos: "before", value: "Rs" },
      { name: currencyDetail.NigerianNaira, pos: "before", value: "?" },
      { name: currencyDetail.NorwegianKrone, pos: "after", value: "kr" },
      { name: currencyDetail.GeorgianLari, pos: "before", value: "GEL" },
      { name: currencyDetail.RenminbiOffshore, pos: "before", value: "￥" },
      { name: currencyDetail.SwedishKrona, pos: "after", value: "kr" },
      { name: currencyDetail.SwissFranc, pos: "before", value: "CHF" },
      { name: currencyDetail.SerbianDinar, pos: "before", value: "din" },
      { name: currencyDetail.SierraLeone, pos: "before", value: "SLL" },
      { name: currencyDetail.SeychellesRupee, pos: "before", value: "SCR" },
      { name: currencyDetail.SaudiRiyal, pos: "before", value: "Rial" },
      { name: currencyDetail.SaoTomeDobra, pos: "before", value: "Db" },
      { name: currencyDetail.SaintHelenapound, pos: "before", value: "￡" },
      { name: currencyDetail.SriLankaRupee, pos: "before", value: "Rs" },
      { name: currencyDetail.SwazilandLilangeni, pos: "before", value: "SZL" },
      { name: currencyDetail.SudanesePound, pos: "before", value: "SDG" },
      { name: currencyDetail.Surinamesedollar, pos: "before", value: "$" },
      { name: currencyDetail.SolomonIslandsDollar, pos: "before", value: "$" },
      { name: currencyDetail.SomaliShilling, pos: "before", value: "SOS" },
      { name: currencyDetail.TajikistanSomoni, pos: "before", value: "Som" },
      { name: currencyDetail.PacificFranc, pos: "after", value: "FCFP" },
      { name: currencyDetail.ThaiBaht, pos: "before", value: "?" },
      { name: currencyDetail.TanzanianShilling, pos: "before", value: "TSh" },
      { name: currencyDetail.TonganPaanga, pos: "before", value: "T$" },
      {
        name: currencyDetail.TrinidadandTobagoDollar,
        pos: "before",
        value: "$",
      },
      { name: currencyDetail.TunisianDinar, pos: "before", value: "din" },
      { name: currencyDetail.TurkishLira, pos: "before", value: "?" },
      { name: currencyDetail.VanuatuVatu, pos: "before", value: "VUV" },
      { name: currencyDetail.GuatemalanQuetzal, pos: "before", value: "Q" },
      { name: currencyDetail.CommissionBolivar, pos: "before", value: "Bs" },
      { name: currencyDetail.BruneiDollar, pos: "before", value: "$" },
      { name: currencyDetail.UgandanShilling, pos: "before", value: "UGX" },
      { name: currencyDetail.UkrainianHryvnia, pos: "before", value: "грн." },
      { name: currencyDetail.UruguayanPeso, pos: "before", value: "$" },
      { name: currencyDetail.Uzbekistansom, pos: "before", value: "so?m" },
      { name: currencyDetail.WesternSamoaTala, pos: "before", value: "WST" },
      { name: currencyDetail.SingaporeDollar, pos: "before", value: "$" },
      { name: currencyDetail.NT, pos: "before", value: "NT$" },
      { name: currencyDetail.NewZealandDollar, pos: "before", value: "$" },
      { name: currencyDetail.HungarianForint, pos: "before", value: "Ft" },
      { name: currencyDetail.SyrianPound, pos: "before", value: "￡" },
      { name: currencyDetail.JamaicanDollar, pos: "before", value: "$" },
      { name: currencyDetail.ArmenianDram, pos: "before", value: "Dram" },
      { name: currencyDetail.YemeniRial, pos: "before", value: "Rial" },
      { name: currencyDetail.IraqiDinar, pos: "before", value: "din" },
      { name: currencyDetail.IranianRial, pos: "before", value: "Rial" },
      { name: currencyDetail.NewIsraeliShekel, pos: "before", value: "?" },
      { name: currencyDetail.IndianRupee, pos: "before", value: "?" },
      { name: currencyDetail.IndonesianRupiah, pos: "before", value: "Rp" },
      { name: currencyDetail.JordanianDinar, pos: "before", value: "din" },
      { name: currencyDetail.VND, pos: "after", value: "?" },
      { name: currencyDetail.ZambianKwacha, pos: "before", value: "ZMW" },
      { name: currencyDetail.GibraltarPound, pos: "before", value: "￡" },
      { name: currencyDetail.ChileanPeso, pos: "before", value: "$" },
      { name: currencyDetail.CFAFrancBEAC, pos: "before", value: "FCFA" },
    ];

    this.dateFmtList = locale().dateFmtList;

    this.numFmtList = [
      {
        name: "1235",
        value: "0",
      },
      {
        name: "1234.56",
        value: "0.00",
      },
      {
        name: "1,235",
        value: "#,##0",
      },
      {
        name: "1,234.56",
        value: "#,##0.00",
      },
      {
        name: "1,235",
        value: "#,##0_);(#,##0)",
      },
      {
        name: "1,235",
        value: "#,##0_);[Red](#,##0)",
      },
      {
        name: "1,234.56",
        value: "#,##0.00_);(#,##0.00)",
      },
      {
        name: "1,234.56",
        value: "#,##0.00_);[Red](#,##0.00)",
      },
      {
        name: "$1,235",
        value: "$#,##0_);($#,##0)",
      },
      {
        name: "$1,235",
        value: "$#,##0_);[Red]($#,##0)",
      },
      {
        name: "$1,234.56",
        value: "$#,##0.00_);($#,##0.00)",
      },
      {
        name: "$1,234.56",
        value: "$#,##0.00_);[Red]($#,##0.00)",
      },
      {
        name: "1234.56",
        value: "@",
      },
      {
        name: "123456%",
        value: "0%",
      },
      {
        name: "123456.00%",
        value: "0.00%",
      },
      {
        name: "1.23E+03",
        value: "0.00E+00",
      },
      {
        name: "1.2E+3",
        value: "##0.0E+0",
      },
      {
        name: "1234 5/9",
        value: "# ?/?",
      },
      {
        name: "1234 14/25",
        value: "# ??/??",
      },
      {
        name: "$ 1,235",
        value: '_($* #,##0_);_(...($* "-"_);_(@_)',
      },
      {
        name: "1,235",
        value: '_(* #,##0_);_(*..._(* "-"_);_(@_)',
      },
      {
        name: "$ 1,234.56",
        // "value": '_($* #,##0.00_)...* "-"??_);_(@_)'
        value: '_($* #,##0.00_);_(...($* "-"_);_(@_)',
      },
      {
        name: "1,234.56",
        value: '_(* #,##0.00_);...* "-"??_);_(@_)',
      },
    ];

    $("#luckysheet-modal-dialog-mask").show();
    $("#luckysheet-moreFormat-dialog").remove();

    let title = "",
      content = "";

    if (type == "morecurrency") {
      //货币
      title = locale_format.titleCurrency;

      let listHtml = "";

      for (let i = 0; i < _this.moneyFmtList.length; i++) {
        let name = _this.moneyFmtList[i]["name"];
        let pos = _this.moneyFmtList[i]["pos"];
        let value = _this.moneyFmtList[i]["value"];

        listHtml +=
          '<div class="listItem">' +
          '<div class="name">' +
          name +
          "</div>" +
          '<div class="value">' +
          value +
          "</div>" +
          '<input type="hidden" value="' +
          pos +
          '"/>' +
          "</div>";
      }

      content =
        '<div class="box" id="morecurrency">' +
        '<div class="decimal">' +
        "<label>" +
        locale_format.decimalPlaces +
        "：</label>" +
        '<input type="number" class="formulaInputFocus" value="2" min="0" max="9"/>' +
        "</div>" +
        '<div class="listbox">' +
        listHtml +
        "</div>" +
        "</div>";
    } else if (type == "moredatetime") {
      //日期时间
      title = locale_format.titleDateTime;

      let listHtml = "";

      for (let i = 0; i < _this.dateFmtList.length; i++) {
        let name = _this.dateFmtList[i]["name"];
        let value = _this.dateFmtList[i]["value"];

        listHtml +=
          '<div class="listItem">' +
          '<div class="name">' +
          name +
          "</div>" +
          '<div class="value">' +
          value +
          "</div>" +
          "</div>";
      }

      content =
        '<div class="box" id="moredatetime">' +
        '<div class="listbox">' +
        listHtml +
        "</div>" +
        "</div>";
    } else if (type == "moredigit") {
      //数字
      title = locale_format.titleNumber;

      let listHtml = "";

      for (let i = 0; i < _this.numFmtList.length; i++) {
        let name = _this.numFmtList[i]["name"];
        let value = _this.numFmtList[i]["value"];

        listHtml +=
          '<div class="listItem">' +
          '<div class="name">' +
          name +
          "</div>" +
          '<div class="value">' +
          value +
          "</div>" +
          "</div>";
      }

      content =
        '<div class="box" id="moredigit">' +
        '<div class="listbox">' +
        listHtml +
        "</div>" +
        "</div>";
    }

    $("body").append(
      replaceHtml(modelHTML, {
        id: "luckysheet-moreFormat-dialog",
        addclass: "luckysheet-moreFormat-dialog",
        title: title,
        content: content,
        botton:
          '<button id="luckysheet-moreFormat-dialog-confirm" class="btn btn-primary">' +
          locale_button.confirm +
          '</button><button class="btn btn-default luckysheet-model-close-btn">' +
          locale_button.cancel +
          "</button>",
        style: "z-index:100003",
      })
    );
    let $t = $("#luckysheet-moreFormat-dialog")
        .find(".luckysheet-modal-dialog-content")
        .css("min-width", 400)
        .end(),
      myh = $t.outerHeight(),
      myw = $t.outerWidth();
    let winw = $(window).width(),
      winh = $(window).height();
    let scrollLeft = $(document).scrollLeft(),
      scrollTop = $(document).scrollTop();
    $("#luckysheet-moreFormat-dialog")
      .css({
        left: (winw + scrollLeft - myw) / 2,
        top: (winh + scrollTop - myh) / 3,
      })
      .show();

    $("#luckysheet-moreFormat-dialog .listbox .listItem")
      .eq(0)
      .addClass("on");
  },
  init: function() {
    let _this = this;

    //选择格式
    $(document).on(
      "click",
      "#luckysheet-moreFormat-dialog .listbox .listItem",
      function() {
        $(this)
          .addClass("on")
          .siblings()
          .removeClass("on");
      }
    );

    //确定
    $(document)
      .off("click.moreFormatConfirm")
      .on(
        "click.moreFormatConfirm",
        "#luckysheet-moreFormat-dialog #luckysheet-moreFormat-dialog-confirm",
        function() {
          $("#luckysheet-moreFormat-dialog").hide();
          $("#luckysheet-modal-dialog-mask").hide();

          let d = editor.deepCopyFlowData(Store.flowdata);

          let value = $(
            "#luckysheet-moreFormat-dialog .listbox .listItem.on .value"
          ).text();
          let id = $(this)
            .parents("#luckysheet-moreFormat-dialog")
            .find(".box")
            .attr("id");

          if (id == "morecurrency") {
            //货币
            if (value.indexOf("?") != -1) {
              return;
            }

            let decimal = parseInt(
              $("#luckysheet-moreFormat-dialog .decimal input")
                .val()
                .trim()
            );

            if (decimal.toString() == "NaN" || decimal < 0 || decimal > 9) {
              if (isEditMode()) {
                alert("小数位数必须在0-9之间！");
              } else {
                tooltip.info("小数位数必须在0-9之间！", "");
              }

              return;
            }

            let str = "";

            if (decimal > 0) {
              for (let i = 1; i <= decimal; i++) {
                str += "0";
              }

              str = "0." + str;
            } else {
              str = "#";
            }

            let pos = $(
              "#luckysheet-moreFormat-dialog .listbox .listItem.on input:hidden"
            ).val();

            if (pos == "before") {
              str = '"' + value + '" ' + str;
            } else if (pos == "after") {
              str = str + ' "' + value + '"';
            }

            menuButton.updateFormat(d, "ct", str);
          } else if (id == "moredatetime") {
            //日期时间
            menuButton.updateFormat(d, "ct", value);
          } else if (id == "moredigit") {
            //数字
            menuButton.updateFormat(d, "ct", value);
          }
        }
      );
  },
};

export default luckysheetMoreFormat;
